package com.hxzy.tms.service;

import java.util.ArrayList;
import java.util.Date;

import com.hxzy.tms.entity.Team;
/**
 * 团队Service层
 * @author team1
 *
 */
public interface TeamService {
	/**
	 * 通过ID 查找 团队
	 * @param id
	 * @return
	 */
	ServiceResult<Team> read(long id);
	/**
	 * 通过域名查找团队
	 * @param domain
	 * @return
	 */
	ServiceResult<Team> read(String domain);
	
	/**
	 * 创建团队
	 * @param name 名字
	 * @param desc 描述
	 * @param intro 介绍
	 * @param subdomain 域名
	 * @param gmtBegin 开始日期
	 * @param gmtEnd 结束日期
	 * @return
	 */
	ServiceResult<Team> create(String name, String desc, String intro, String subdomain, Date gmtBegin,
            Date gmtEnd,Integer status);
	
	ServiceResult<Team> update(long id,String name, String desc, String intro, String subdomain, Date gmtBegin,
            Date gmtEnd,Integer status);
	/**
	 * 显示置顶状态值的团队
	 * @param status
	 * @return
	 */
	ServiceResult<ArrayList<Team>> teamLists(Integer status);
    /**
     * 邀请指定的用户到指定的团队
     * @param uid 邀请人
     * @param teamId 团队id
     * @param email 被邀请人的邮箱
     * @return 
     *  1：加入成功，
     *  -1：email 对应的用户不存在 
     *  -2: 用户已经加入了该团队
     */
    int invite(long uid, long teamId, String email);
}
